package com.advertisementsystem.Servie;

import com.advertisementsystem.Dto.RoleDTO;
import com.advertisementsystem.entity.Permission;
import com.advertisementsystem.entity.Role;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

public interface RoleService {

    /**
     * 获取角色列表（分页）
     */
    Page<Role> getRoleList(Integer pageNum, Integer pageSize, String name, String code, Integer status);

    /**
     * 获取所有角色
     */
    List<Role> getAllRoles();

    /**
     * 获取角色详情
     */
    Role getRoleById(Long id);

    /**
     * 添加角色
     */
    void addRole(RoleDTO roleDTO);

    /**
     * 更新角色
     */
    void updateRole(Long id, RoleDTO roleDTO);

    /**
     * 删除角色
     */
    void deleteRole(Long id);

    /**
     * 更新角色状态
     */
    void updateRoleStatus(Long id, Integer status);

    /**
     * 为角色分配权限
     */
    void assignPermissions(Long roleId, List<Long> permissionIds);

    /**
     * 获取角色的权限列表
     */
    List<Permission> getRolePermissions(Long roleId);

    List<Role> getRolesByUserId(Long id);
}